package com.cykj.page02;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

/**
 * @BelongsProject: HandTomcat
 * @BelongsPackage: com.cykj.page03
 * @Author: WWJ
 * @CreateTime: 2025-06-17 14:45
 * @Description: 解析响应消息
 * @Version: 1.0
 */
public class MyHttpResponse {
    private Socket socket;

    public MyHttpResponse(Socket socket) {
        this.socket = socket;
    }

    public void write(byte[] bytes){
        this.write("text/html",bytes);
    }

    public void write(String media,byte[] bytes){

        try {
            //获取输出流，用于发送响应数据给客户端（浏览器）
            OutputStream os = socket.getOutputStream();
            //下面是构造 HTTP 响应报文（3部分：响应行、响应头、响应体）
            //响应行
            os.write("HTTP/1.1 200 OK".getBytes());
            os.write("\r\n".getBytes());
            //响应头
            os.write(("Content-Type:"+media+";charset=UTF-8").getBytes());
            os.write("\r\n".getBytes());
            os.write(("Content-Length:"+bytes.length).getBytes());// // 告诉浏览器图片有多大
            os.write("\r\n".getBytes());

            os.write("\r\n".getBytes());//// 空行，表示响应头结束，接下来是响应体
            //响应体
            os.write(bytes);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

    }
}
